查看原文
其他

想做架构师必看:关于架构师你需要知道的14件事!

来源丨https://blog.csdn.net/u011277123/article/details/90698899

图片来自 Pexels

上一篇:12306 的架构到底有多牛逼?

01 架构师的日常职责是什么 ?

总体而言,架构师负责软件领域的顶层设计。架构师需要根据公司的发展,规划企业未来若干年的架构,制定可落地的架构方案,解决技术难题,做技术选型与攻关,落地具体的架构。优秀的架构师既能做架构方案,也能写具体的架构代码。

02 开发工程师和架构师有何区别?

  • 工作重点有区别。

    架构师重点在于前期的架构规划,需要制定可落地的架构方案,结合公司的业务场景、团队的技术水平等因素做技术选型,解决技术难题等等;而开发工程师重点在于具体的落地,特别的, 开发工程师的工作重点落地具体的功能。

  • 能力要求不一样。

    架构师要求比较高,要有架构的广度、深度,需要掌握一系列的架构技术栈,要求有架构实战经验,要有很强的系统分析、系统架构、系统设计的能力。开发工程师主要是要求熟悉基本的技术栈,熟悉相关业务,快速落地产品的相关功能。

03 如何走上架构之路?

  • 首先要有架构师的思维,对分布式、高并发、高性能、高可用、可扩展、松耦合、高内聚、可复用、系统边界、安全等方面有深刻的理解 。

  • 技术面要广,熟悉架构技术栈,比如:熟悉微服务,缓存,分布式消息中间件,分布式任务中间件,数据层中间件,分布式监控中间件,网关中间件,分布式配置中心等等,并不是所有的技术栈要非常精通,但重要的技术,一定要掌握得非常深 。

  • 注重架构技术实践,这是开发童鞋非常缺失的。建议多和架构师多交流,多落地相关技术的实践,集中火力多实战成长会很快的。理论看100遍,不如实践一遍。

  • 掌握好uml,提升个人系统分析、系统架构、系统设计、画业务架构图、技术架构图、写架构方案等方面的能力 。

  • 从架构思维,架构技术栈,架构职责等角度写好一份架构师的简历,重点突出个人掌握的架构技术栈,重点突出项目的架构亮点,难点 。

  • 在企业内部转架构,或者去别的企业转型架构。架构面试方面多实践,如果没经验,可以让架构师老司机们多模拟面试几轮。

04 我已经拿到一家互联网公司的业务架构师的offer,没去基础架构团队,我接offer,还是不接呢?

不要犹豫,先接了offer再说。

其实你问的包含两个问题。

(1)只要不是特别差的offer,不要犹豫,先接了再说,面试多家公司拿到多个offer然后选一个最优的。

(2)可以先做业务架构师。对于java程序猿而言,架构师分为业务架构师,基础架构师两大类,从高级开发转成业务架构师,难度小,出成绩快。业务架构和基础架构有70%是一样的,那就是都要求有架构能力,剩下的30%是业务架构要求熟练掌握业务,制定架构方案,架构落地,基础架构则是100%要求纯技术。短期而言,看似基础架构更风光,其实不然。业务架构发展前景更好一些,因为35岁以后,拼的是综合能力,不再是纯架构能力。业务架构要求有更好的沟通能力,架构规划,架构落地能力,一定的行业业务背景,甚至管理能力,所以从业务架构更容易做到技术总监或cto。如果一直做基础架构,那么可能是首席架构师。一般的架构老司机是业务架构,基础架构通吃的,好就业,到什么山唱什么歌。

05 UML对系统架构重不重要?

UML是架构基本功,但又容易被开发童鞋忽视。

架构师要有很强的系统分析,系统架构,系统设计,架构表达能力,通过掌握UML,提高这些能力。业务架构师 通过 UML可以抽象出业务平台的核心用例,可以把复杂的业务流程以分析模型表达清楚,高阶设计阶段,利用包图,组件图,部署图把设计,部署表达清楚。基础架构师设计中间件,可以画uml协作图,或活动图表达技术功能的流程,设计阶段,可以画包图,表达各个包的功能,然后多人可以一起撸技术中间件的具体代码,做具体架构落地。

06 Springcloud 和Dubbo用哪个?

Dubbo相对而言,成熟稳定,文档齐全门槛低一些,但是很多服务治理方面的功能是缺失的。Springcloud大而全,但很多功能不强大,不成熟。长期而言,个人更看好Spring cloud,虽然目前还有一些坑,而且门槛也比Dubbo高,但整体发展趋势比Dubbo强,Spring cloud生态体系比Dubbo更好,功能更全面。掌握Dubbo和Spring cloud是不冲突的,二者有很多相同的地方,又有很多地方不同。

07 分布式定时任务和一般的任务都什么区别?

分布式定时任务一般是多台服务器可以同时跑定时任务,效率要比一般的任务高,可用性要比一般的任务高(可以做失效转移,架构上没有单点问题,任务节点可以监控),性能要比一般任务的强(架构是强伸缩性,多台机器一起运行,执行时间要短),支持的并发能力远远超过一般的任务(多台机器执行,可以把海量数据分配给不同的机器执行,并发能力非常好)。

08 高并发和高性能的区别和联系是什么?

简单而言,高并发是访问数量,高性能是访问响应时间,两个不同的角度。并发量化的常见参数指标,qps,tps等等,性能量化指标一般是处理时间,比如:接口响应时间是10ms和5分钟,性能是完全不一样的。qps为100和qps为50万的并发架构完全不一样。如果架构不合理,并发量越大,性能越差。如果架构合理,并发量的大小对性能基本没影响,加机器即可,软件架构不需要任何改变。

09 为啥项目经理在国内其实是很危险的职业?

项目管理其实没啥含金量,项目经理工作替代性其实很强,可以被产品经理,技术经理,核心开发等干系人替代。特别是到中年以后,项目经理很难找到合适的工作。

10 reactor线程指的是reactor模型中的哪个部分?

这个问题本身是有问题的。reactor线程模型分为单线程,多线程,主从多线程。实际编程过程中,第二种用的是最多的,

11 消息中间件目前使用频率最大是RabbitMQ吗?

技术选型是从技术的使用场景,优缺点等方面综合评估的。很多企业用RocketMQ和kafka,大数据基本100%选kafka.

12 服务限流有哪些算法?

服务限流常见算法有并发计数器算法,漏桶算法,令牌桶算法。前两种算法不支持突发流量的限流,令牌桶算法支持突发流量的限流。一般用谷歌guava落地令牌桶算法,用sentinel作为服务限流的中间件。

13 数据同步有哪些方式 ?

这个问题其实涉及到很多场景的。如果是数据库方面的,可以用SqlLoader、GoldenGate等相关工具同步数据;大数据方面的,可以用ETL、Hadoop等相关技术同步数据;如果是定时调度发起的,可以考虑用SpringBatch,Quartz,Elastic-Job等分布式任务中间件发起同步数据;如果是异步的场景,可以用mq来实现监听并且同步增量数据。大批量的数据情况下,尽可能地考虑用mq、线程池、多线程、数据批量操作等相关技术手段提升性能。

14 上亿数据如何大规模更新 ?

可以用分布式任务调度中间件的大任务分片来做,把上亿的数据分给多台机器来做。 如果实时性要求不高,完全可以设置一定的时间间隔,减少DB压力;如果实时要求高,数据层需要分库。如果每天增量数据较多,可以考虑周期性地做数据归档。

------END------

架构师交流群

 「顶级架构师」建立了读者架构师交流群,大家可以添加小编微信进行加群

扫描添加好友邀你进架构师群

后台回复【架构】获取架构思维导图


版权申明:内容来源网络,版权归原作者所有。如有侵权烦请告知,我们会立即删除并表示歉意。谢谢。

猜你还想看

一个架构师谈什么是架构,以及怎么成为架构师
35岁是道坎?在阿里,40岁的奋斗姿势
阿里架构师:为什么大部分人做不了架构师?这2点是关键
牛X,试用了下 GitHub 上 2 万 Star 的第一抢票神器,3 秒钟抢到!

长按识别图片二维码关注,订阅更多精彩


顶级架构师,企业架构、系统架构、网站架构、大规模分布式架构、高可用架构等架构讨论,以及结合互联网技术的架构调整。欢迎有想法、乐于分享的架构师交流学习。

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存